#include "../corelib/network/mem_pool.hh"
#include "unittest/unittest.hh"

using namespace kratos::corelib;
using namespace kratos::network;

FIXTURE_BEGIN(MemPool)

TEARDOWN([]() {
    kratos::corelib::Singleton<MemoryPool>::destroy();
})

CASE(TestMemPool1) {
    auto p0 = MempoolRef.allocate(32);
    MempoolRef.dispose(p0);
    p0 = MempoolRef.allocate(32);
    MempoolRef.dispose(p0);
    auto p1 = MempoolRef.allocate(112);
    MempoolRef.dispose(p1);
    auto p2 = MempoolRef.allocate(MemoryPool::MAX_ELEMENT_SIZE + 1);
    MempoolRef.dispose(p2);
}

FIXTURE_END(MemPool)
